﻿/*----------------------------------------------------------------
    // Copyright (C) 2009 江苏华招网
    // 版权所有。 
    // 作者：庄金冬 
    //
    // 文件名：IBLL_Role.cs
    // 文件功能描述：有关角色的业务逻辑接口
    // 创建标识：庄金冬2009-03-06
    //
    // 修改标识：
    // 修改描述：
    //
    // 修改标识：
    // 修改描述：
    //
    // 审核人：
    // 审核时间：
    // 审核说明：
 //----------------------------------------------------------------*/
using System;
using System.Collections.Generic;

using System.Text;
using HZ.DrugTrade.Model;
namespace HZ.DrugTrade.IBLL
{
    /// <summary>
    /// 有关角色的业务逻辑接口
    /// </summary>
    public interface IBLL_Role
    {
        #region 角色操作
        /// <summary>
        /// 添加角色同时可添加权限信息(0不成功;1成功;2该名称已经存在)
        /// </summary>
        /// <param name="role">角色实体（可含权限信息）[RoleID不用赋值，由系统自动生成]</param>
        /// <returns>0不成功;1成功;2该名称已经存在</returns>
        int AddRole(Role role);

        /// <summary>
        /// 根据编号删除角色(包括递归删除角色权限)
        /// [0.不成功,1.不成功,2.角色不存在,3.该角色已被用户使用，不能删除]
        /// </summary>
        /// <param name="roleid">角色编号</param>
        /// <returns>0.不成功,1.成功,2.角色不存在,3.该角色已被用户使用，不能删除</returns>
        int DeleteRole(string roleid);

        /// <summary>
        /// 设定角色的操作权限(连带更新)
        /// </summary>
        /// <param name="role">带角色操作权限的角色对象</param>
        /// <returns></returns>
        bool SetRoleOperatingRule(Role role);

        /// <summary>
        /// 设定角色名称及操作权限(连带更新)[0,更新失败;1,更新成功;2,该角色名称已经存在3,该角色已经不存在]
        /// </summary>
        /// <param name="role">带角色操作权限的角色对象</param>
        /// <returns>0,更新失败;1,更新成功;2,该角色名称已经存在3,该角色已经不存在</returns>
        int SetRole_OperatingRule(Role role);

        /// <summary>
        /// 设定角色名称[0,更新失败;1,更新成功;2,该角色名称已经存在3,该角色已经不存在]
        /// </summary>
        /// <param name="role">角色对象</param>
        /// <returns>0,更新失败;1,更新成功;2,该角色名称已经存在3,该角色已经不存在</returns>
        int SetRole(Role role);
        
        #endregion
        
        #region 角色查询
        /// <summary>
        /// 获取所有角色
        /// </summary>
        /// <param name="currentPage">当前页</param>
        /// <param name="pageSize">每页显示记录数</param>
        /// <param name="totalRecord">（输出参数）总记录数目</param>
        /// <returns></returns>
        IList<Role> GetAllRole(int currentPage, int pageSize, out int totalRecord);

        /// <summary>
        /// 获取所有角色
        /// </summary>
        /// <returns></returns>
        IList<Role> GetAllRole();

        /// <summary>
        /// 根据角色编号获取该角色的操作权限
        /// </summary>
        /// <param name="roleid">角色编号</param>
        /// <returns></returns>
        IList<OperatingRule> GetRoleOperatingRuleByRoleID(string roleid);

        /// <summary>
        /// 根据角色编号获取该角色(包括操作权限)
        /// </summary>
        /// <param name="roleid">角色编号</param>
        /// <returns>角色(包括操作权限)</returns>
        Role GetRole_OperatingRule_ByRoleID(string roleid); 
        #endregion

      

    }
}
